Polymorphic engine